{#if loadError} {loadError} {:else} {#await currentUserIdentity} Loading user identity ... 60% {:then identity} {@const isOwner = identity && identity.name === data.username} {#if isOwner}

Back to Profile { if (editMode) selectedBadge = undefined; editMode = !editMode; }} > {editMode ? 'Disable' : 'Enable'} Edit Mode screenshot()}>Download Dark Mode Transparent Background

{/if} {#if editMode && isOwner} {#if error}

{error}

{/if}

{selectedBadge ? 'Update' : 'Add'} Badge {#if selectedBadge} or { if (selectedBadge) removeBadge(selectedBadge); }}>Delete Badge (click twice) {/if} Must be full date and time, defaults to now if any fields empty

{/if} {#await badgesPromise} Loading badges ... 40% {:then badgesResponse} {#if badgesResponse} {#await badgesResponse.json()} Loading badges ... 80% {:then ungroupedBadges}
{#if ungroupedBadges === null} {@html nbsp('Loading badges ... 50%')} {:else if ungroupedBadges.length === 0} {@html nbsp('No badges found for this user.')} {:else} {@const groupedBadges = Object.entries(groupBadges(ungroupedBadges))} {#each groupedBadges as [category, badges]}
{category}
{#if groupedBadges[groupedBadges.length - 1][0] !== category}

{/if} {/each} {/if}

{:catch}

Could not parse badges

{/await} {:else} Loading badges ... 20% {/if} {:catch}

Could not fetch badges

{/await} {/await} {/if}